vectorthrustfandomcom-20200216-history
Tutorial: Map-making
It is possible to create custom maps for Vector Thrust, along with all other forms of content. Maps do not behave in the same way as other objects. Requirements Required tools: * A 3D CAD program such as Blender or 3dsmax. * A plugin capable of exporting in Ogre format, in 1.4 Ogre version ( the version used by Vector Thrust ). * A text editor ( such as Notepad++ ). * An image editor ( such as GIMP ) * Vector Thrust itself ( preferrably, for testing purposes ) Required content: * ".mesh" files for both collision and visuals * Textures for the map, preferrably in JPG format. * Textures for the map in .PNG format for transparency, in particular for coastlines, and tiles containing water. * The "map.ini" file, regulating the map's content. * A texture acting as the radar map in either JPG, PNG or DDS format ( in a 512* resolution ) Optional content: * A terrain modifier mask texture. * A water modifiere mask texture. * A water texture, if water is present. Notes regarding content: Content will be checked for first in the map's own folder, then for the game's own internal libraries. It is then possible to make a completely self-contained library in the map's folder, easing up the installation/uninstallation process. Structure of the map.ini Radar * MapFile = "Filename". This is used to define the file to use for the radar map in-game. ** Example: MapFile = "Radar.png" scene * AmbientLight = "Float Float Float". Triple float value used to define the ambient light color, from 0.0 to 1.0 RGB. ** Example: AmbientLight = "0.3 0.3 0.3" * ShadowColour = "Float Float Float". Triple float value used to define the color of ambient shadows, from 0.0 to 1.0 RGB. ** Example: ShadowColour = "0.3 0.3 0.3" * TypeBG = "Integer". Numeric value defining the type of sky renderer to use. ** Values: 0 = SkyX ( default renderer ), 1 = Skybox ( ogre3D preset ), 2 = Skydome ( secondary Ogre3D preset). ** Example: TypeBG = "0" ( generally best left as-is ). * BGmaterial = "String". Text value used as path for the background material images to use for sky rendering. ** Example: BGmaterial = "Examples/CloudyNoonSkyBox" * NoFog = "Bool". Boolean value used to determine wether or not the map has fog disabled. ** Example: NoFog = "false" * FogFadeColour = "Float Float Float". Triple float RGB value used to define the color of the fog. ** Example: FogFadeColour = "0.76 0.76 0.80" * FogStart = "Integer". Numeric value used to define from which distance to the player the fog will start rendering. ** Example: FogStart = "400" * NoSun = "Bool". Boolean value used to disable the sun in the map or not. ** Example: NoSun = "false" * hasSun = "Bool". boolean value supposedly meant to do the same thing as above? Use reverse value from NoSun. ** Example: hasSun = "true" * Sun_AutoConfig = "Bool". Boolean value meant to let the game automatically configure the sun's position using a time of day value. ** Example: Sun_AutoConfig = true * Sun_AutoConfig_Hour = "Integer". Numeric value in military time format ( 0-24H ) to automatically ajust the sun's position. ** Example: Sun_AutoConfig_Hour = "15" * Sun_position = "Integer Integer Integer". Triple numeric X Y Z vector value used to manually ajust the sun's position if the above Autoconfig is disabled. ** Example: Sun_position = "1500 1750 1300" * Sun_DiffuseColour = "Float Float Float". Triple float RGB value used to set the colour of sunlight cast in the map. ** Example: Sun_DiffuseColour = "0.9 0.9 0.9" * Sun_SpecularColour = "Float Float Float". Triple float RGB value used to set the color of reflected sunlight, such as bloom and metallic, reflective surfaces. ** Example: Sun_SpecularColour= "0.9 0.9 1" * Sun_CastShadows = "Bool". Boolean value used to determine wether or not the sunlight casts shadows from objects to the ground. ** Example: Sun_CastShadows = "true" * Sun_LensFlare = "String". Text value used to select whichever lens flare is meant to be used for the sun. ** Example: Sun_LensFlare = "BasicLens" * NoGroundLightScater = "Bool". Boolean value used to prevent the light cast on the ground to scatter and reflect on surrounding objects. ** Example: NoGroundLightScater = "false" * hasGroundLightScater = "Bool". Boolean value used to allow the light cast on the ground to scatter and reflect on surrounding objects? See above. ** Example: hasGroundLightScater = "true" * ScaterLight_DiffuseColour = "Float Float Float". Float RGB value used to set the light colour reflected by the ground. ** Example: ScaterLight_DiffuseColour = "0.06 0.06 0.1" * dScaterLight_DiffuseColour = "Float Float Float". Watch out for the D typo. Float RGB value used to set the light colour reflected by the ground. ** Example: dScaterLight_DiffuseColour = "0.2 0.15 0.05" * ScaterLight_SpecularColour= "Float Float Float". Float RGB value used to set the light colour reflected from shiny elements on the ground. ** Example: ScaterLight_SpecularColour= "0.16 0.1 0.06" * ScaterLight_CastShadows = "Bool". Boolean value allowing or not for ground light to cast shadows from surrounding elements. ** Example: ScaterLight_CastShadows = "false" * nDirectLights = "Integer". Unknown number value. Supposedly defines the list of direct lights sources in a map. Such blocks do not exist yet. ** Example: nDirectLights = "0" * nSNodes = "Integer". Number value, defines the number of Static Nodes to be used. Having more static nodes defined than this number will cause the excess to be ignored by the engine. Having less will outright crash the game. ** Example: nSNodes = "3" * nCollMesh = "Integer". Number value, defines the number of invisible 3D models to be used for collisions. Having more than this number will cause the excess to be ignored by the engine. Having less can possibly crash the game. ** Example: "nCollMesh = 3" * StaticGeom = "Integer". Number value, defines the ammount of Static Geometry blocks to read. Just like the two above, having more blocks listed than this value will cause the excess to be ignored. Having this value higher than the ammount of existing blocks can interfere with the game's stability. ** Example: StaticGeom="0" Clouds * numLayers = "Integer". Numeric value defining how many cloud layer blocks are in the map. ** Example: numLayers = "9" ( generally default value ) Cloud layer block structure: * Cloud layer types: *# Simple repeating pane at a given altitude *# // *# Simple repeating pane with progressive transparency based off altitude *# Billed repeating panes clustered around a certain altitude Examples for cloud layer types: Type 1: Clayer_X_type=1 Clayer_X_Ypos=6000 Clayer_X_StartFadePerc=0.8 Clayer_X_Texture= "al_pClfog.png"" Clayer_X_ModelType=0 Type 2: Clayer_X_type=2 Clayer_X_Ypos=2000 Clayer_X_StartFadePerc=0.8 Clayer_X_Texture= "al_cCloud.png" Clayer_X_ModelType=0 Type 3: Clayer_X_type=3 Clayer_X_Ypos=6000 Clayer_X_StartFadePercDown=0.01 Clayer_X_StartFadePercUp = 1.3 Clayer_X_Texture= "al_dCloud.png" Clayer_X_FadeWithY=true Clayer_X_ModelType=0 Type 4: Clayer_X_type=4 Clayer_X_Ypos=3000 Clayer_X_YvarRange=4000 Clayer_X_StartFadeDistRange = 2000 Clayer_X_FadeYDistStart=2000 Clayer_X_FadeYDistEnd=3000 Clayer_X_Texture="DistBCloud1.png" Clayer_X_BillType = 1 Clayer_X_FadeWithY=true Clayer_X_NumClouds=200 Clayer_X_BillDefDimen = "4000 1000" Notes: X represents the number of the cloud block in sequence. Trees * NumLayers = "Integer". Numeric value listing how many tree clusters there are. ** Example: NumLayers = "4" Colisions Example: Col_X_Mesh= "Collisionfile.mesh" Col_X_Pos = "0 0 0" Col_X_TreeL_1_Prob=0.0 Col_X_TreeL_1_NoTrees = true Col_X_TreeL_2_Prob=0.0 Col_X_TreeL_2_NoTrees = true Col_X_TreeL_3_Prob=0.0 Col_X_TreeL_3_NoTrees = true Col_X_TreeL_4_Prob=0.0 Col_X_TreeL_4_NoTrees = true Col_X_TreeL_5_Prob=0.0 Col_X_TreeL_5_NoTrees = true Col_X_ColType= "0" ColType defines the type of collision: //-0 Basic //-1 Dirt //-2 Mud //-3 Grass //-4 Concrete //-5 Paved //-6 Snow //-7 Ice //-8 Rock //-9 Sand //-10 Deep Water //-11 Shallow Water //-12 Skin //-13 Armored Skin //-14 Wood //-15 Structure //-16 Reinforced Structure //-17 Non Armored Vehicle //-18 Light Armored Vehicle //-19 Heavy Armored Vehicle //-20 Reactive Armor Notes: X represents the number of the cloud block in sequence. sn_X : Static nodes All static nodes are started using a block name in the following format: sn_X, X being the number of blocks in sequence. Structure of a static node: sn_name= "Land" sn_IsSubNode = "false" sn_ParentSn_name = "Root" usa_eixos_3dMax= "false" sn_Pos= "0 0 0" sn_Yaw= "0" sn_Pitch= "0" sn_Roll= "0" sn_AdvancedCull="false" sn_nMeshes= "1" snMesh_Me_1 = "Land.mesh" snMesh_Na_1 = "Land" snMesh_Vis_1 = "true" snMesh_dntShadow_1= "true" snMesh_UseCustomMat_1 = "false" snMesh_CustomMatName_1 = "" static_X: Static geometry SceneObjects numObjects=0 TerrainMaterials NumMaterials = "Integer" DetailTexture = "" WaterTexture = "Watertexture.jpg" WaterToneOverlay = "Watertexture_WatMod.jpg" WaterAddOverlay = "Watertexture_WatAdd.jpg" TerrainToneOverlay= "" OceanMatName= "Watertexture" Material block: Mat_1_MaterialName="Texturename" Mat_1_TextureName="Texturename.dds" Mat_1_GlowTextureName="" Mat_1_HasWater = true Mat_1_IsTile=false Category:Modding